home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 April: Mac OS SDK / Dev.CD Apr 96 SDK / Dev.CD Apr 96 SDK1.toast / Development Kits (Disc 1) / OpenDoc / Environment Additions / Metrowerks / CodeWarrior Additions / SOM / somcls.api < prev    next >
Encoding:
Text File  |  1995-10-27  |  6.2 KB  |  185 lines  |  [TEXT/MPS ]

  1. #ifndef SOMClass_API
  2. #define SOMClass_API
  3. /*
  4.  * -- The Class API
  5.  */
  6.  
  7. /*
  8.  * Start of user-defined types:
  9.  */
  10. class SOMClass;
  11. class SOMObject;
  12. #ifndef _IDL_SEQUENCE_SOMClass_defined
  13. #define _IDL_SEQUENCE_SOMClass_defined
  14. typedef struct {
  15.     unsigned long _maximum;
  16.     unsigned long _length;
  17.     SOMClass **_buffer;
  18. } _IDL_SEQUENCE_SOMClass;
  19. #endif /* _IDL_SEQUENCE_SOMClass_defined */ 
  20. typedef
  21. _IDL_SEQUENCE_SOMClass SOMClass_SOMClassSequence;
  22.  
  23. /*
  24.  *  a sequence of classes
  25.  *  These methods are expected to be invoked by SOM clients
  26.  */
  27.  
  28. #ifndef SOM_DONT_USE_SHORT_NAMES
  29.  
  30. #ifndef SOM_DONT_USE_SHORT_NAMES
  31. #ifndef SOMTGD_SOMClassSequence
  32.     #ifdef SOMClassSequence
  33.         #undef SOMClassSequence
  34.         #define SOMTGD_SOMClassSequence 1
  35.     #else
  36.         #define SOMClassSequence SOMClass_SOMClassSequence
  37.     #endif /* SOMClassSequence */
  38. #endif /* SOMTGD_SOMClassSequence */
  39. #endif /* SOM_DONT_USE_SHORT_NAMES */
  40. #endif /* SOM_DONT_USE_SHORT_NAMES */
  41.  
  42. /*
  43.  * End of user-defined types.
  44.  */
  45.  
  46. #ifdef OLDIBMSOMAPISUPPORT
  47. #define SOMClassCClassData SOMClassClassData
  48. #define SOMClassNewClass(major,minor) somNewVersionedClassReference(SOMClass,major,minor)
  49. #endif
  50.  
  51. /* define xxxMetaClass macro to facilitate (cls ## MetaClass) */
  52. #define SOMClassMetaClass SOMClass
  53.  
  54.  
  55. /* The API to the SOMClass class object, and the methods it introduces. */
  56. SOMEXTERN struct SOMClassClassDataStructure {
  57. #ifdef OLDIBMSOMAPISUPPORT
  58.     SOMClass            *classObject;    /* always zero, use somNewClassReference instead */
  59. #else
  60.     long zero;
  61. #endif
  62.     somStaticClassInfo *sci;
  63.     somDToken        instanceDataToken;
  64.     long reserved [3];
  65.     somMToken somNew;
  66.     somMToken somRenew;
  67.     somMToken somClassReady;
  68.     somMToken somGetName;
  69.     somMToken somDescendedFrom;
  70.     somMToken somCheckVersion;
  71.     somMToken somFindMethod;
  72.     somMToken somFindMethodOk;
  73.     somMToken somSupportsMethod;
  74.     somMToken somGetNumMethods;
  75.     somMToken somGetInstanceSize;
  76.     somMToken somGetInstancePartSize;
  77.     somMToken somGetMethodIndex;
  78.     somMToken somGetNumStaticMethods;
  79.     somMToken somAddDynamicMethod;
  80.     somMToken somFindSMethod;
  81.     somMToken somFindSMethodOk;
  82.     somMToken somGetMethodDescriptor;
  83.     somMToken somGetNthMethodInfo;
  84.     somMToken somNewNoInit;
  85.     somMToken somRenewNoInit;
  86.     somMToken somGetInstanceToken;
  87.     somMToken somGetMethodData;
  88.     somMToken somGetMethodToken;
  89.     somMToken somGetParents;
  90.     somMToken somGetVersionNumbers;
  91.     somMToken somLookupMethod;
  92.     somMToken somRenewNoZero;
  93.     somMToken somRenewNoInitNoZero;
  94.     somMToken somAllocate;
  95.     somMToken somDeallocate;
  96.     somMToken somGetNthMethodData;
  97.     somMToken somMakeDynamicClassReference;
  98. } SOMDLINK SOMClassClassData;
  99.  
  100. #if !defined(SOMClass_Class_Source) && !defined(SOM_Module_somcls_Source)
  101. #if PRAGMA_IMPORT_SUPPORTED
  102. #pragma import list SOMClassClassData
  103. #endif
  104. #endif
  105.  
  106.  
  107. /*
  108.  * -- Typedefs and inline method declarations for left path inherited methods
  109.  * -- are omitted because this compilation had -museinheritedmethods in effect
  110.  */
  111.  
  112.  
  113. /*
  114.  * -- Typedefs for SOMClass Method Procedures
  115.  */
  116. SOMEXTERN {
  117. typedef SOMObject*   (* SOMLINK somTD_SOMClass_somNew)(SOMClass *somSelf);
  118. typedef boolean   (* SOMLINK somTD_SOMClass_somMakeDynamicClassReference)(SOMClass *somSelf);
  119. typedef long   (* SOMLINK somTD_SOMClass_somGetInstancePartSize)(SOMClass *somSelf);
  120. typedef long   (* SOMLINK somTD_SOMClass_somGetInstanceSize)(SOMClass *somSelf);
  121. typedef corbastring   (* SOMLINK somTD_SOMClass_somGetName)(SOMClass *somSelf);
  122. typedef somDToken   (* SOMLINK somTD_SOMClass_somGetInstanceToken)(SOMClass *somSelf);
  123. typedef long   (* SOMLINK somTD_SOMClass_somGetNumMethods)(SOMClass *somSelf);
  124. typedef long   (* SOMLINK somTD_SOMClass_somGetNumStaticMethods)(SOMClass *somSelf);
  125. typedef boolean   (* SOMLINK somTD_SOMClass_somGetMethodData)(SOMClass *somSelf,
  126.         somId methodId,
  127.         somMethodData* md);
  128. typedef somKernelId   (* SOMLINK somTD_SOMClass_somGetMethodDescriptor)(SOMClass *somSelf,
  129.         somId methodId);
  130. typedef somMToken   (* SOMLINK somTD_SOMClass_somGetMethodToken)(SOMClass *somSelf,
  131.         somId methodId);
  132. typedef void   (* SOMLINK somTD_SOMClass_somAddDynamicMethod)(SOMClass *somSelf,
  133.         somId methodId,
  134.         somId methodDescriptor,
  135.         somMethodPtr method,
  136.         somMethodPtr applyStub);
  137. typedef long   (* SOMLINK somTD_SOMClass_somGetMethodIndex)(SOMClass *somSelf,
  138.         somId id);
  139. typedef boolean   (* SOMLINK somTD_SOMClass_somGetNthMethodData)(SOMClass *somSelf,
  140.         long n,
  141.         somMethodData* md);
  142. typedef somKernelId   (* SOMLINK somTD_SOMClass_somGetNthMethodInfo)(SOMClass *somSelf,
  143.         long n,
  144.         somKernelId* descriptor);
  145. typedef boolean   (* SOMLINK somTD_SOMClass_somFindMethod)(SOMClass *somSelf,
  146.         somId methodId,
  147.         somMethodPtr* m);
  148. typedef boolean   (* SOMLINK somTD_SOMClass_somFindMethodOk)(SOMClass *somSelf,
  149.         somId methodId,
  150.         somMethodPtr* m);
  151. typedef somMethodPtr   (* SOMLINK somTD_SOMClass_somFindSMethod)(SOMClass *somSelf,
  152.         somId methodId);
  153. typedef somMethodPtr   (* SOMLINK somTD_SOMClass_somFindSMethodOk)(SOMClass *somSelf,
  154.         somId methodId);
  155. typedef somMethodPtr   (* SOMLINK somTD_SOMClass_somLookupMethod)(SOMClass *somSelf,
  156.         somId methodId);
  157. typedef corbastring   (* SOMLINK somTD_SOMClass_somAllocate)(SOMClass *somSelf,
  158.         long size);
  159. typedef void   (* SOMLINK somTD_SOMClass_somDeallocate)(SOMClass *somSelf,
  160.         corbastring memptr);
  161. typedef void   (* SOMLINK somTD_SOMClass_somClassReady)(SOMClass *somSelf);
  162. typedef void   (* SOMLINK somTD_SOMClass_somGetVersionNumbers)(SOMClass *somSelf,
  163.         long* majorVersion,
  164.         long* minorVersion);
  165. typedef boolean   (* SOMLINK somTD_SOMClass_somCheckVersion)(SOMClass *somSelf,
  166.         long majorVersion,
  167.         long minorVersion);
  168. typedef boolean   (* SOMLINK somTD_SOMClass_somDescendedFrom)(SOMClass *somSelf,
  169.         SOMClass* aClassObj);
  170. typedef boolean   (* SOMLINK somTD_SOMClass_somSupportsMethod)(SOMClass *somSelf,
  171.         somId mId);
  172. typedef SOMObject*   (* SOMLINK somTD_SOMClass_somNewNoInit)(SOMClass *somSelf);
  173. typedef SOMObject*   (* SOMLINK somTD_SOMClass_somRenew)(SOMClass *somSelf,
  174.         void* memptr);
  175. typedef SOMObject*   (* SOMLINK somTD_SOMClass_somRenewNoInit)(SOMClass *somSelf,
  176.         void* memptr);
  177. typedef SOMObject*   (* SOMLINK somTD_SOMClass_somRenewNoZero)(SOMClass *somSelf,
  178.         void* memptr);
  179. typedef SOMObject*   (* SOMLINK somTD_SOMClass_somRenewNoInitNoZero)(SOMClass *somSelf,
  180.         void* memptr);
  181. typedef SOMClass_SOMClassSequence   (* SOMLINK somTD_SOMClass_somGetParents)(SOMClass *somSelf);
  182. }
  183.  
  184. #endif /* SOMClass_API */
  185.